package com.example.missingpersons.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.io.Serial;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;

/**
 * clue 实体类
 * @author 张芸博
 * @since 2025-03-12
 */
@Data
@AllArgsConstructor
public class Clue implements Serializable {
    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 线索的唯一标识
     */
    @TableId(value = "clue_id", type = IdType.AUTO)
    @Schema(name = "clue_id", description = "线索的唯一标识")
    private Integer clueId;

    /**
     * 关联的失踪人员ID
     */
    @Schema(name = "person_id", description = "关联的失踪人员ID")
    private Integer personId;

    /**
     * 线索描述
     */
    @Schema(name = "clue_description", description = "线索描述")
    private String clueDescription;

    /**
     * 线索发现日期
     */
    @Schema(name = "clue_date", description = "线索发现日期")
    private LocalDate clueDate;

    /**
     * 线索发现地点
     */
    @Schema(name = "clue_location", description = "线索发现地点")
    private String clueLocation;

    /**
     * 线索提供者
     */
    @Schema(name = "reported_by", description = "线索提供者")
    private String reportedBy;

    /**
     * 线索提供者联系方式
     */
    @Schema(name = "contact_info", description = "线索提供者联系方式")
    private String contactInfo;

    /**
     * 线索状态（如：未处理、已核实、无效等）
     */
    @Schema(name = "status", description = "线索状态（如：未处理、已核实、无效等）")
    private String status;

    /**
     * 记录创建时间
     */
    @Schema(name = "created_at", description = "记录创建时间")
    private LocalDateTime createdAt;

    /**
     * 记录更新时间
     */
    @Schema(name = "updated_at", description = "记录更新时间")
    private LocalDateTime updatedAt;


}
